#photoApp {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: calc(100vh);
  margin: 0;
  z-index: -1;
}
.photo-animate {

}
#loader-wrapper {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 999999;

  #loader {
    display: block;
    position: relative;
    left: 50%;
    top: 50%;
    width: 150px;
    height: 150px;
    margin: -75px 0 0 -75px;
    border-radius: 50%;
    border: 3px solid transparent;
    /* COLOR 1 */
    border-top-color: #FFF;
    -webkit-animation: spin 2s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
    -ms-animation: spin 2s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
    -moz-animation: spin 2s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
    -o-animation: spin 2s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
    animation: spin 2s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */
    z-index: 1001;
    &:before {
      content: "";
      position: absolute;
      top: 5px;
      left: 5px;
      right: 5px;
      bottom: 5px;
      border-radius: 50%;
      border: 3px solid transparent;
      /* COLOR 2 */
      border-top-color: #FFF;
      -webkit-animation: spin 3s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
      -moz-animation: spin 3s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
      -o-animation: spin 3s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
      -ms-animation: spin 3s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
      animation: spin 3s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */
    }
    &:after {
      content: "";
      position: absolute;
      top: 15px;
      left: 15px;
      right: 15px;
      bottom: 15px;
      border-radius: 50%;
      border: 3px solid transparent;
      border-top-color: #FFF;
      /* COLOR 3 */
      -moz-animation: spin 1.5s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
      -o-animation: spin 1.5s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
      -ms-animation: spin 1.5s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
      -webkit-animation: spin 1.5s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
      animation: spin 1.5s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */
    }
  }
  .loader-section {
    position: fixed;
    top: 0;
    width: 51%;
    height: 100%;
    background: #6cf;
    z-index: 1000;
    -webkit-transform: translateX(0); /* Chrome, Opera 15+, Safari 3.1+ */
    -ms-transform: translateX(0); /* IE 9 */
    transform: translateX(0); /* Firefox 16+, IE 10+, Opera */
  }
  .loader-section.section-left {
    left: 0;
  }
  .loader-section.section-right {
    right: 0;
  }

  .load-title {
    font-family: 'Open Sans';
    color: #FFF;
    font-size: 19px;
    width: 100%;
    text-align: center;
    z-index: 9999999999999;
    position: absolute;
    top: 60%;
    opacity: 1;
    line-height: 30px;
    span {
      font-weight: normal;
      font-style: italic;
      font-size: 13px;
      color: #FFF;
      opacity: 0.5;
    }
  }
}

@-webkit-keyframes spin {
  0% {
    -webkit-transform: rotate(0deg); /* Chrome, Opera 15+, Safari 3.1+ */
    -ms-transform: rotate(0deg); /* IE 9 */
    transform: rotate(0deg); /* Firefox 16+, IE 10+, Opera */
  }
  100% {
    -webkit-transform: rotate(360deg); /* Chrome, Opera 15+, Safari 3.1+ */
    -ms-transform: rotate(360deg); /* IE 9 */
    transform: rotate(360deg); /* Firefox 16+, IE 10+, Opera */
  }
}

@keyframes spin {
  0% {
    -webkit-transform: rotate(0deg); /* Chrome, Opera 15+, Safari 3.1+ */
    -ms-transform: rotate(0deg); /* IE 9 */
    transform: rotate(0deg); /* Firefox 16+, IE 10+, Opera */
  }
  100% {
    -webkit-transform: rotate(360deg); /* Chrome, Opera 15+, Safari 3.1+ */
    -ms-transform: rotate(360deg); /* IE 9 */
    transform: rotate(360deg); /* Firefox 16+, IE 10+, Opera */
  }
}

.loaded {
  width: 100%;
  height: 100%;
  margin: 0;
  #loader-wrapper {
    visibility: hidden;
    -webkit-transform: translateY(-100%); /* Chrome, Opera 15+, Safari 3.1+ */
    -ms-transform: translateY(-100%); /* IE 9 */
    transform: translateY(-100%); /* Firefox 16+, IE 10+, Opera */
    -webkit-transition: all 0.3s 1s ease-out;
    transition: all 0.3s 1s ease-out;
    .loader-section.section-left {
      -webkit-transform: translateX(-100%); /* Chrome, Opera 15+, Safari 3.1+ */
      -ms-transform: translateX(-100%); /* IE 9 */
      transform: translateX(-100%); /* Firefox 16+, IE 10+, Opera */
      -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
      transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
    }
    .loader-section.section-right {
      -webkit-transform: translateX(100%); /* Chrome, Opera 15+, Safari 3.1+ */
      -ms-transform: translateX(100%); /* IE 9 */
      transform: translateX(100%); /* Firefox 16+, IE 10+, Opera */
      -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
      transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
    }
  }
  #loader {
    opacity: 0;
    -webkit-transition: all 0.3s ease-out;
    transition: all 0.3s ease-out;
  }
}

.vue-fucking-gallery-container {
  width: 100%;
  height: 100%;
  margin: 0;
  .vue-fucking-gallery-div {
    width: 100%;
    height: 100%;
    margin: 0;
    canvas {
      margin: 0;
    }
    ul {
      width: 100%;
      height: 100%;
      margin: 0;
      padding: 0;
      list-style: none;
      overflow: hidden;
      .slider-parent {
        position: relative;
        .slider-grid {
          width: 10%;
          height: 100px;
          float: left;
          overflow: hidden;
          position: absolute;
          box-sizing: border-box;
          .slider-grid-a, .slider-grid-b {
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            position: absolute;
          }
          .slider-grid-b {
            z-index: 1;
            display: none;
          }

          @keyframes fromLeftToRightWithOpacityChange {
            0% {
              left: -100%;
              opacity: 0;
              display: block;
            }
            100% {
              left: 0;
              opacity: 1;
            }
          }

          @keyframes fromRightToLeftWithOpacityChange {
            0% {
              left: 100%;
              opacity: 0;
              display: block;
            }
            100% {
              left: 0;
              opacity: 1;
            }
          }

          @keyframes fromTopToBottomWithOpacityChange {
            0% {
              top: -100%;
              opacity: 0;
              display: block;
            }
            100% {
              top: 0;
              opacity: 1;
            }
          }

          @keyframes fromBottomToTopWithOpacityChange {
            0% {
              top: 100%;
              opacity: 0;
              display: block;
            }
            100% {
              top: 0;
              opacity: 1;
            }
          }

          @keyframes fromLeftToRight {
            0% {
              left: -100%;
              display: block;
            }
            100% {
              left: 0;
            }
          }

          @keyframes fromRightToLeft {
            0% {
              left: 100%;
              display: block;
            }
            100% {
              left: 0;
            }
          }

          @keyframes fromTopToBottom {
            0% {
              top: -100%;
              display: block;
            }
            100% {
              top: 0;
            }
          }

          @keyframes fromBottomToTop {
            0% {
              top: 100%;
              display: block;
            }
            100% {
              top: 0;
            }
          }
        }
      }
    }
  }
}

.vue-fucking-gallery-container {
  width: 100%;
  height: 100%;
  margin: 0;
  .vue-fucking-gallery-div {
    width: 100%;
    height: 100%;
    margin: 0;
    canvas {
      margin: 0;
    }
    ul {
      width: 100%;
      height: 100%;
      margin: 0;
      padding: 0;
      list-style: none;
      overflow: hidden;
      .slider-parent {
        position: relative;
        .slider-grid {
          width: 10%;
          height: 100px;
          float: left;
          overflow: hidden;
          position: absolute;
          box-sizing: border-box;
          .slider-grid-a, .slider-grid-b {
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            position: absolute;
          }
          .slider-grid-b {
            z-index: 1;
            display: none;
          }

          @keyframes fromLeftToRightWithOpacityChange {
            0% {
              left: -100%;
              opacity: 0;
              display: block;
            }
            100% {
              left: 0;
              opacity: 1;
            }
          }

          @keyframes fromRightToLeftWithOpacityChange {
            0% {
              left: 100%;
              opacity: 0;
              display: block;
            }
            100% {
              left: 0;
              opacity: 1;
            }
          }

          @keyframes fromTopToBottomWithOpacityChange {
            0% {
              top: -100%;
              opacity: 0;
              display: block;
            }
            100% {
              top: 0;
              opacity: 1;
            }
          }

          @keyframes fromBottomToTopWithOpacityChange {
            0% {
              top: 100%;
              opacity: 0;
              display: block;
            }
            100% {
              top: 0;
              opacity: 1;
            }
          }

          @keyframes fromLeftToRight {
            0% {
              left: -100%;
              display: block;
            }
            100% {
              left: 0;
            }
          }

          @keyframes fromRightToLeft {
            0% {
              left: 100%;
              display: block;
            }
            100% {
              left: 0;
            }
          }

          @keyframes fromTopToBottom {
            0% {
              top: -100%;
              display: block;
            }
            100% {
              top: 0;
            }
          }

          @keyframes fromBottomToTop {
            0% {
              top: 100%;
              display: block;
            }
            100% {
              top: 0;
            }
          }
        }
      }
    }
  }
}